<?php


namespace App\Utils;

/**
 * Class RiskCheckUtils
 * 风控比较函数
 *
 * @package App\Utils
 */
class RiskCheckUtils {

    /**
     * 等于判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function eqHandle ($a, $b) {
        return $a == $b;
    }

    /**
     * 不等于判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function neqHandle ($a, $b) {
        return !self::eqHandle($a, $b);
    }

    /**
     * 大于判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function gtHandle ($a, $b) {
        return $a > $b;
    }

    /**
     * 不大于判断(小于等于)
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function ngtHandle ($a, $b) {
        return !self::gtHandle($a, $b);
    }

    /**
     * 小于判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function ltHandle ($a, $b) {
        return $a < $b;
    }

    /**
     * 不小于判断(大于等于)
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function nltHandle ($a, $b) {
        return !self::ltHandle($a, $b);
    }

    /**
     * 包含判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function inHandle ($a, $b) {
        $tmpArr = explode(',', $b);
        return in_array($a, $tmpArr);
    }

    /**
     * 不包含判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function notInHandle ($a, $b) {
        return !self::inHandle($a, $b);
    }

    /**
     * 指定字符串开头判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function startByHandle ($a, $b) {
        return strpos($a, $b) == 0;
    }

    /**
     * 非指定字符串开头判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function notStartByHandle ($a, $b) {
        return !self::startByHandle($a, $b);
    }

    /**
     * 以指定字符串结尾判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function endByHandle ($a, $b) {
        return self::startByHandle(strrev($a), strrev($b));
    }

    /**
     * 不以指定字符串结尾判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function notEndByHandle ($a, $b) {
        return !self::endByHandle($a, $b);
    }

    /**
     * 闭区间内判断
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function inRangeHandle ($a, $b) {
        $range = json_decode($b, true);
        return $a >= $range['start'] && $a <= $range['end'];
    }

    /**
     * 闭区间外判断
     *
     * @param $a
     * @param $b
     *
     * @return bool
     */
    public static function outRangeHandle ($a, $b) {
        return !self::inRangeHandle($a, $b);
    }

    /**
     * 正则判断
     *
     * @param $value
     * @param $regex
     *
     * @return false|int
     */
    public static function regexHandle ($value, $regex) {
        return preg_match($regex, $value);
    }

}
